package cn.kinoko.common.aspect.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 锁注解
 * @author kk
 */
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Lock {

    // 缓存的key
    String key() default "";
    // 缓存的key参数
    String[] params() default {};
    // 锁粒度是否加入用户信息
    boolean currentUser() default false;
    // 锁的过期时间
    int expire() default 10;
    // 时间单位
    TimeUnit timeUnit() default TimeUnit.SECONDS;
    // 异常描述
    String errorDesc() default "系统繁忙，请稍后再试";
}
